
export interface VideoData{
    videoid: number
    uuid: number
    storage: string
    title: string
    info: string
    cover_pic: string
    status: number
    play_num: number
    star_num: number
    comment_num: number
    length: number
    up_time: string
    commentList: null
    tagList: TagData[]
}

export interface UserData{
    uuid:number
    email:string
    name:string
    pwd:null
    info:string
    face:string
    status:string
    videos:8
    commentList:null
    historyList:null
    favoriteList:null
    reportList:null
    subscribeList:null
}

export interface TagData{
    tag_id: number
    tag_name: string
    parent_tag: number
}

export interface IComponent{
    // currentTabComponent是vue组件对象,目前不太了解vue组件是什么类型,使用object会报错,先用Record<any,any>取代
    currentTabComponent: Record<any, any>
    tag?: string
}

export interface UserInfo{
    uuid:number
    email:string
    name:string
    info:string
    face:string
}

export const VideoState:VideoData={
    commentList: null,
    comment_num: 0,
    cover_pic: "",
    info: "",
    length: 0,
    play_num: 0,
    star_num: 0,
    status: 0,
    storage: "",
    tagList: [],
    title: "",
    up_time: "",
    uuid: 0,
    videoid: 0

}

export const Tag:TagData={
    parent_tag: 0, tag_id: 0, tag_name: ""
}


export const User:UserInfo={
    email: "", face: "", info: "", name: "", uuid: 0

}

export interface Favorite{
    favorite_id:number
    time:string
    uuid:number
    video_id:number
    video:VideoData
}
export const Fav:Favorite={
    favorite_id: 0, time: "", uuid: 0, video: VideoState, video_id: 0

}

export interface Hist{
    "time": string,
    "uuid": number,
    "video_id": number,
    "watch_to": number
    video:VideoData
}
export const hist:Hist={
    time: "", uuid: 0, video_id: 0, watch_to: 0, video: VideoState
}

export interface AdminVideo{
    admin_id:number,
    video_id:number,
    pass:boolean,
    reason:string,
    time:string,
    video:VideoData
}

export interface PageInfo<E>{
    endRow	:number
    hasNextPage	:boolean
    hasPreviousPage	:boolean
    isFirstPage	:boolean
    isLastPage	:boolean
    list	:E[]
    navigateFirstPage	:number
    navigateLastPage	:number
    navigatePages	:number
    navigatepageNums	:number[]
    nextPage	:number
    pageNum	:number
    pageSize	:number
    pages	:number
    prePage	:number
    size	:number
    startRow	:number
    total	:number
}
export const pageInfo:PageInfo<any>={
    endRow: 0,
    hasNextPage: false,
    hasPreviousPage: false,
    isFirstPage: false,
    isLastPage: false,
    list: [],
    navigateFirstPage: 0,
    navigateLastPage: 0,
    navigatePages: 0,
    navigatepageNums: [],
    nextPage: 0,
    pageNum: 0,
    pageSize: 0,
    pages: 0,
    prePage: 0,
    size: 0,
    startRow: 0,
    total: 0

}